Contágio

Column

Casos Diários

<<<<<<< HEAD
=======
>>>>>>> tmp

Casos Acumulados

<<<<<<< HEAD
=======
>>>>>>> tmp

Column

112.31

19/09/21

06/21

50

Informações

  • Os dados referentes aos contágios foram retirados do site brasil.io. Para mais informações sobre a manipulação deles, acesse o repositório do dashboard no github;
  • Alguma dúvida? Envie um e-mail para ou acesse a aba “Glossário”;
  • <<<<<<< HEAD
  • Atualizado pela última vez em 15/12/21 às 22:43 BRT.
  • =======
  • Atualizado pela última vez em 20/12/21 às 13:38 BRT.
  • >>>>>>> tmp

Mortalidade

Column

Mortes Diárias

<<<<<<< HEAD
=======
>>>>>>> tmp

Mortes Acumuladas

<<<<<<< HEAD
=======
>>>>>>> tmp

Column

4.12

09/04/21

04/21

55

Informações

  • Os dados referentes à mortalidade foram retirados do site brasil.io. Para mais informações sobre a manipulação deles, acesse o repositório do dashboard no github;
  • Alguma dúvida? Envie um e-mail para ou acesse a aba “Glossário”;
  • <<<<<<< HEAD
  • Atualizado pela última vez em 15/12/21 às 22:43 BRT.
  • =======
  • Atualizado pela última vez em 20/12/21 às 13:38 BRT.
  • >>>>>>> tmp

Vacinação

Column

Vacinação da Cidade de Sorocaba - Gráfico

<<<<<<< HEAD
=======
>>>>>>> tmp

Tabela (População Feminina)

<<<<<<< HEAD
=======
>>>>>>> tmp
Vacinação da População Feminina de Sorocaba1
Fonte: Ministério da Saúde 2020 e basedosdados.org
% com 1ª dose aplicada % com 2ª dose aplicada
Grupo Etário Porcentagem
0-4 anos 0%
5-9 anos 0.1%
10-14 anos 51.7%
15-19 anos 96.3%
20-24 anos 106.7%
25-29 anos 103.5%
30-34 anos 102.7%
35-39 anos 89.2%
40-44 anos 100.2%
45-49 anos 102%
50-54 anos 100.3%
55-59 anos 102.2%
60-64 anos 106.1%
65-69 anos 106.2%
70-74 anos 107.4%
75-79 anos 103.2%
80_mais 97.7%
Grupo Etário Porcentagem
0-4 anos 0%
5-9 anos 0%
10-14 anos 27.2%
15-19 anos 62.9%
20-24 anos 79%
25-29 anos 81.5%
30-34 anos 86.5%
35-39 anos 88.7%
40-44 anos 95.4%
45-49 anos 91.4%
50-54 anos 95.5%
55-59 anos 101.6%
60-64 anos 99.8%
65-69 anos 102.7%
70-74 anos 102.3%
75-79 anos 102.2%
80_mais 94.5%

1 Alguns valores são acima de 100% pois a pop. utilizada para cálculo se trata de uma estimativa

Tabela (População Masculina)

<<<<<<< HEAD
=======
>>>>>>> tmp
Vacinação da População Masculina de Sorocaba1
Fonte: Ministério da Saúde 2020 e basedosdados.org
% com 1ª dose aplicada % com 2ª dose aplicada
Grupo Etário Porcentagem
0-4 anos 0%
5-9 anos 0.1%
10-14 anos 50.8%
15-19 anos 90%
20-24 anos 97.3%
25-29 anos 99.5%
30-34 anos 97.6%
35-39 anos 83.2%
40-44 anos 95.9%
45-49 anos 98.5%
50-54 anos 98.8%
55-59 anos 99.4%
60-64 anos 102.8%
65-69 anos 103.7%
70-74 anos 107.7%
75-79 anos 103.3%
80_mais 96.6%
Grupo Etário Porcentagem
5-9 anos 0%
10-14 anos 25.8%
15-19 anos 55.8%
20-24 anos 65.4%
25-29 anos 72.1%
30-34 anos 76.2%
35-39 anos 80.5%
40-44 anos 86.5%
45-49 anos 82.9%
50-54 anos 88.6%
55-59 anos 96%
60-64 anos 95.7%
65-69 anos 100.9%
70-74 anos 102.6%
75-79 anos 104.1%
80_mais 93.1%

1 Alguns valores são acima de 100% pois a pop. utilizada para cálculo se trata de uma estimativa

Tabela (População Geral)

<<<<<<< HEAD
=======
>>>>>>> tmp
Vacinação da População de Sorocaba1
Fonte: Ministério da Saúde 2020 e basedosdados.org
% com 1ª dose aplicada % com 2ª dose aplicada
Grupo Etário Porcentagem
0-4 anos 0.03%
5-9 anos 0.07%
10-14 anos 51.26%
15-19 anos 93.04%
20-24 anos 101.88%
25-29 anos 101.49%
30-34 anos 100.15%
35-39 anos 86.15%
40-44 anos 98.12%
45-49 anos 100.32%
50-54 anos 99.58%
55-59 anos 100.9%
60-64 anos 104.58%
65-69 anos 105.09%
70-74 anos 107.54%
75-79 anos 103.25%
80_mais 97.3%
Grupo Etário Porcentagem
0-4 anos 0.01%
5-9 anos 0.03%
10-14 anos 26.46%
15-19 anos 59.28%
20-24 anos 72.02%
25-29 anos 76.72%
30-34 anos 81.26%
35-39 anos 84.56%
40-44 anos 91.08%
45-49 anos 87.26%
50-54 anos 92.19%
55-59 anos 98.94%
60-64 anos 97.9%
65-69 anos 101.86%
70-74 anos 102.4%
75-79 anos 102.97%
80_mais 93.97%

1 Alguns valores são acima de 100% pois a pop. utilizada para cálculo se trata de uma estimativa

Column

83.49%

73.44%

91.77%

79.33%

Informações

Glossário

Aqui estão presentes alguns termos e conceitos que podem não ser acessíveis para pessoas sem o hábito da leitura, criação e/ou interpretação de textos e relatórios estatísticos. Acha que faltam explicações? Envie um e-mail para sobre sua dúvida e, a depender do caso, ela será adicionada aqui!

  • Casos ou Mortes Diárias: são o número de casos diagnosticados ou de mortes ocorridas única e exclusivamente num determinado dia;
  • Casos ou Mortes Acumuladas: são o número de casos diagnosticados ou de mortes ocorridas até um determinado dia. Exemplificando, se no dia 1 temos 3 mortes diárias, no dia 2 temos 7 mortes diárias e no dia 3 temos 5 mortes diárias, o número de mortes acumuladas do dia 3 é \(3+7+5 = 15\) mortes;
  • Estimativa Populacional: temos no Brasil que os Censos Demográficos ocorrem (pelo menos em teoria) a cada 10 anos. No entanto, é de interesse de entidades governamentais terem uma ideia do tamanho da população no período entre censos também: para isso, instituições como o IBGE utilizam técnicas para estimar o tamanho da população. Não é o valor exato da população, mas uma aproximação satisfatória o bastante para que norteie políticas públicas e outras questões;
  • Médias Móveis: são uma maneira de suavizar a curva de um determinado banco de dados para que possamos analisar a tendência dos valores observados sem que as variações atrapalhem a análise. São calculadas de acordo com uma ordem \(k\) (em nosso caso, utilzamos \(k\) = 7 e 14 dias): faz-se a média aritmética simples de valores no ponto \(t\) e todos os \(t-(k-1)\) pontos anteriores. Se a linha das médias móveis está em queda, então existem indícios de que a variável em questão (mortes ou casos diários) está em queda também;
  • Ocorrências a cada mil habitantes: é um indicador bastante útil para termos ideia do quão boa ou ruim é a situação da cidade. Exemplificando, pensemos numa cidade que possui 10 mortes para cada mil habitantes: se dividirmos por dez, temos 1 morte para cada cem habitantes (ou 1% de mortes proporcionais à população); se dividirmos por cem, temos que, para cada dez pessoas, 0.1 morrem devido à doença (obviamente para fins de análise: não é possível que um décimo de pessoa morra!).

Sobre

<<<<<<< HEAD

Atualizado pela última vez em 15/12/21 às 22:43 BRT.

=======

Atualizado pela última vez em 20/12/21 às 13:39 BRT.

>>>>>>> tmp

Este é o dashboard “A COVID-19 em Sorocaba”. Ele é o resultado do Projeto de Extensão “Análise e Visualização dos Dados da Pandemia na Cidade de Sorocaba”, sob fomento da ProEx - Pró Reitoria de Extensão da UFSCar - Universidade Federal de São Carlos.

Ele é realizado por Victor Alves Dogo Martins (aluno do DEs - Departamento de Estatística da UFSCar - Campus São Carlos), sob orientação da Profa. Dra. Andreza Aparecida Palma (vinculada ao DEc - Departamento de Economia da UFSCar - Campus Sorocaba).

O objetivo deste projeto é fornecer um dashboard conciso e de fácil compreensão com dados relativos à pandemia da COVID-19 na cidade de Sorocaba - SP. Estes dados, ao longo do tempo, consistem em casos confirmados, mortes confirmadas e em esforços da campanha de vacinação na cidade.

Todos os dados, gráficos e formatação do dashboard são construídos com auxílio da linguagem de programação estatística R:

  • O dashboard é construído com o auxílio do pacote {flexdashboard};
  • Os dados são tratados com auxílio dos pacotes do tidyverse;
  • Os gráficos são produzidos, em suas versões estáticas, com auxílio do pacote {ggplot2}. Depois, são transformados em versões interativas com auxílio do pacote {plotly};
  • O site é publicado com auxílio do GitHub Pages, com automatização da leitura e tratamento diário das bases de dados através do GitHub Actions;
  • As bases de dados são retiradas dos sites brasil.io (no caso de dados relativos a casos e mortes) e basedosdados.org (no caso de dados da vacinação). Os dados em si não são criados por eles, mas eles constituem uma importante parte deste trabalho devido ao fato de disponibilizarem diversas bases ora bagunçadas e difíceis de trabalhar em formatos muito mais amigáveis e que agilizam o processo de análise;
  • Próximos passos: o intuito futuro deste site é ser atualizado automaticamente através de ferramentas de integração contínua (como o GitHub Actions).

Quaisquer dúvidas, críticas, elogios e sugestões podem ser encaminhadas por e-mail para .

Você pode visualizar o repositório deste site em victordogo/covid19-sorocaba no GitHub.

Referências:

COVID-19 - Datasets - Brasil.IO. Disponível em: <https://brasil.io/dataset/covid19/caso_full/>. Acesso em: 16 dez. 2021.
CAVALCANTE, Pedro. basedosdados: ’Base Dos DadosR Client. [s.l.: s.n.], 2021. Disponível em: <https://CRAN.R-project.org/package=basedosdados>.
CHAVES, Luis. Automating a COVID19 report update and publishing with GitHub Actions. Disponível em: <https://towardsdatascience.com/automating-a-covid19-report-update-and-publishing-with-github-actions-a3d64315e515>. Acesso em: 16 dez. 2021.
IANNONE, Richard; ALLAIRE, J. J. ; BORGES, Barbara. flexdashboard: R Markdown Format for Flexible Dashboards. [s.l.: s.n.], 2020. Disponível em: <https://CRAN.R-project.org/package=flexdashboard>.
KRISPIN, Rami. Deploying flexdashboard on Github Pages \textbar R-bloggers. Disponível em: <https://www.r-bloggers.com/2020/09/deploying-flexdashboard-on-github-pages/>. Acesso em: 16 dez. 2021.
MIOTO, Bruno. Analisando dados de vacinação contra COVID-19 com a BD. Disponível em: <https://medium.com/basedosdados/analisando-dados-de-vacina%C3%A7%C3%A3o-contra-covid-19-com-a-bd-49fe3db8c7f4>. Acesso em: 16 dez. 2021.
SIEVERT, Carson. Interactive Web-Based Data Visualization with R, plotly, and shiny. [s.l.]: Chapman; Hall/CRC, 2020. Disponível em: <https://plotly-r.com>.
WICKHAM, Hadley. ggplot2: Elegant Graphics for Data Analysis. [s.l.]: Springer-Verlag New York, 2016. Disponível em: <https://ggplot2.tidyverse.org>.
WICKHAM, Hadley. tidyr: Tidy Messy Data. [s.l.: s.n.], 2021. Disponível em: <https://CRAN.R-project.org/package=tidyr>.
WICKHAM, Hadley; AVERICK, Mara; BRYAN, Jennifer; et al. Welcome to the tidyverse. Journal of Open Source Software, v. 4, n. 43, p. 1686, 2019.
WICKHAM, Hadley; FRANÇOIS, Romain; HENRY, Lionel; et al. dplyr: A Grammar of Data Manipulation. [s.l.: s.n.], 2021. Disponível em: <https://CRAN.R-project.org/package=dplyr>.
---
title: "A COVID-19 em Sorocaba"
bibliography: refs/ref.bib
csl: refs/abnt.csl
nocite: '@*'
output: 
  flexdashboard::flex_dashboard:
    logo: images/logo-proex-ufscar.png
    favicon: images/icon.png
    source_code: embed
    orientation: columns
    vertical_layout: fill
---



```{r setup, include=FALSE}
library(flexdashboard)

# Lendo dados

covid_sorocaba <- readr::read_rds("data/covid_sorocaba.rds")
covid_sp <- readr::read_rds("data/covid_sp.rds")
vacina_scb <- readr::read_rds("data/vacina_scb.rds")

# Icones de apresentacao 

htmltools::tagList(fontawesome::fa_html_dependency())

```

```{css info-style, echo = FALSE}
  .chart-shim {
    overflow-y: scroll;
    }
```

Contágio
================================================================

Column {.tabset}
-------------------------------------

### Casos Diários

```{r}

# Casos Diários de sorocaba com media movel de 7 e 14 dias

casos_diarios <- covid_sorocaba |>
  dplyr::rename(`Dia`=date,
                `Casos Diários`=new_confirmed) |>
  dplyr::mutate(
    `Média Móvel - 7 dias`=zoo::rollmean(`Casos Diários`,k=7,na.pad = TRUE),
    `Média Móvel - 14 dias`=zoo::rollmean(`Casos Diários`,k=14,na.pad = TRUE)
    ) |>
  ggplot2::ggplot(ggplot2::aes(y=`Casos Diários`,x=`Dia`))+
  ggplot2::geom_line(ggplot2::aes(fill="Casos Diários"),alpha=0.3)+
  ggplot2::geom_line(
    ggplot2::aes(y=`Média Móvel - 7 dias`,
                 fill="Média Móvel - 7 dias"),
    color="red")+
  ggplot2::geom_line(
    ggplot2::aes(y=`Média Móvel - 14 dias`,
                 fill="Média Móvel - 14 dias"),
    color="blue")+
  ggplot2::labs(
    title="Casos Diários na cidade de Sorocaba \ndevido à COVID-19"
    )+
  ggplot2::scale_y_continuous(breaks = seq(0,1000,100))+
  ggplot2::theme_minimal()

casos_diarios |> plotly::ggplotly()

```

### Casos Acumulados

```{r}

# Casos Acumulados de sorocaba comparada com cidades da regiao

casos_acumulados <- covid_sp |>
  dplyr::group_by(city) |>
  dplyr::rename(`Dia`=date,
                `Total de Casos`=last_available_confirmed,
                `Cidade`=city) |>
  ggplot2::ggplot(ggplot2::aes(y=`Total de Casos`,x=`Dia`,
                               color=`Cidade`))+
  ggplot2::geom_line()+
  ggplot2::labs(
    title="Casos Acumulados na cidade de Sorocaba \ncomparada com outras cidades"
  )+
  ggplot2::theme_minimal()

casos_acumulados |> plotly::ggplotly()

```

Column {data-width=150}
-------------------------------------

###

```{r}

# Casos por mil habitantes

((max(covid_sorocaba$last_available_confirmed)/687357)*1000)  |>
  round(digits=2) |> 
  flexdashboard::valueBox(
    caption="casos por mil habitantes",
    icon="fas fa-viruses"
  )

```

###

```{r}
# Data com mais casos

covid_sorocaba |> 
  dplyr::filter(
    new_confirmed==max(covid_sorocaba$new_confirmed)
  ) |> 
  dplyr::select(date) |>
  dplyr::pull() |> 
  format("%d/%m/%y") |> 
  flexdashboard::valueBox(
    caption="data com maior número de casos",
    icon="far fa-calendar-alt"
  )

```

###

```{r}
# Mês com mais casos

covid_sorocaba |> 
  dplyr::mutate(
    month=lubridate::floor_date(date, "month")
  )|>
  dplyr::group_by(month) |> 
  dplyr::summarise(
    total_cases=sum(new_confirmed)
  ) |> 
  dplyr::filter(
    total_cases==max(total_cases)
  ) |> 
  dplyr::select(month) |>
  dplyr::pull() |> 
  format("%m/%y") |> 
  flexdashboard::valueBox(
    caption="mês com maior número de casos",
    icon="far fa-calendar-alt"
  )

```

###

```{r}
# Dias consecutivos sem diagnósticos

dias_consec_casos <- covid_sorocaba |> 
  dplyr::mutate(
    Contagem= stats::ave(new_confirmed, 
                         data.table::rleid(new_confirmed), FUN=seq_along)
  ) |>
  dplyr::filter(
    new_confirmed==0
  ) |> 
  dplyr::select(Contagem)

dias_consec_casos |> 
  dplyr::slice_tail() |> 
  dplyr::pull() |> 
  flexdashboard::valueBox(
    caption="dias consecutivos sem casos",
    icon= "fas fa-check-circle",
    color="success"
  )

```

### Informações

* Os dados referentes aos contágios foram retirados do site [brasil.io](https://brasil.io/dataset/covid19/). Para mais informações sobre a manipulação deles, acesse o [repositório do dashboard no github](https://github.com/victordogo/covid19-sorocaba/tree/master/data-raw);
* Alguma dúvida? Envie um e-mail para victordogo@gmail.com ou acesse a aba ["Glossário"](#glossário);
* **Atualizado pela última vez em `r format(Sys.Date(), '%d/%m/%y')` às `r format(Sys.time(), '%R')` BRT.**

Mortalidade
================================================================

Column {.tabset}
-------------------------------------

### Mortes Diárias

```{r}

# Mortes diarias de sorocaba com media movel de 7 e 14 dias

mortes_diarias <- covid_sorocaba |>
  dplyr::rename(`Dia`=date,
                `Mortes Diárias`=new_deaths) |>
  dplyr::mutate(
    `Média Móvel - 7 dias`=zoo::rollmean(`Mortes Diárias`,k=7,na.pad = TRUE),
    `Média Móvel - 14 dias`=zoo::rollmean(`Mortes Diárias`,k=14,na.pad = TRUE)
    ) |>
  ggplot2::ggplot(ggplot2::aes(y=`Mortes Diárias`,x=`Dia`))+
  ggplot2::geom_line(ggplot2::aes(fill="Mortes Diárias"),alpha=0.3)+
  ggplot2::geom_line(
    ggplot2::aes(y=`Média Móvel - 7 dias`,
                 fill="Média Móvel - 7 dias"),
    color="red")+
  ggplot2::geom_line(
    ggplot2::aes(y=`Média Móvel - 14 dias`,
                 fill="Média Móvel - 14 dias"),
    color="blue")+
  ggplot2::labs(
    title="Mortes Diárias na cidade de Sorocaba \ncausadas pela COVID-19"
    )+
  ggplot2::scale_y_continuous(breaks = seq(0,85,5))+
  ggplot2::theme_minimal()

mortes_diarias |> plotly::ggplotly()

```

### Mortes Acumuladas

```{r}

# Mortes acumuladas de sorocaba comparada com cidades da regiao

mortes_acumuladas <- covid_sp |>
  dplyr::group_by(city) |>
  dplyr::rename(`Dia`=date,
                `Total de Mortes`=last_available_deaths,
                `Cidade`=city) |>
  ggplot2::ggplot(ggplot2::aes(y=`Total de Mortes`,x=`Dia`,
                               color=`Cidade`))+
  ggplot2::geom_line()+
  ggplot2::labs(
    title="Mortes Acumuladas na cidade de Sorocaba \ncomparada com outras cidades"
  )+
  ggplot2::theme_minimal()

mortes_acumuladas |> plotly::ggplotly()

```

Column {data-width=150}
-------------------------------------

###

```{r}

# Mortes por mil habitantes

((max(covid_sorocaba$last_available_deaths)/687357)*1000)  |>
  round(digits=2) |> 
  flexdashboard::valueBox(
    caption="mortes por mil habitantes",
    icon="fas fa-viruses"
  )

```

###

```{r}
# Data com mais mortes

covid_sorocaba |> 
  dplyr::filter(
    new_deaths==max(covid_sorocaba$new_deaths)
  ) |> 
  dplyr::select(date) |>
  dplyr::pull() |> 
  format("%d/%m/%y") |> 
  flexdashboard::valueBox(
    caption="data com maior número de mortes",
    icon="far fa-calendar-alt"
  )

```

###

```{r}
# Mês com mais mortes

covid_sorocaba |> 
  dplyr::mutate(
    month=lubridate::floor_date(date, "month")
  )|>
  dplyr::group_by(month) |> 
  dplyr::summarise(
    total_deaths=sum(new_deaths)
  ) |> 
  dplyr::filter(
    total_deaths==max(total_deaths)
  ) |> 
  dplyr::select(month) |>
  dplyr::pull() |> 
  format("%m/%y") |> 
  flexdashboard::valueBox(
    caption="mês com maior número de mortes",
    icon="far fa-calendar-alt"
  )

```

###

```{r}
# Dias consecutivos sem mortes

dias_consec_deaths <- covid_sorocaba |> 
  dplyr::mutate(
    Contagem= stats::ave(new_deaths, 
                         data.table::rleid(new_deaths), FUN=seq_along)
  ) |>
  dplyr::filter(
    new_deaths==0
  ) |> 
  dplyr::select(Contagem)

dias_consec_deaths |> 
  dplyr::slice_tail() |> 
  dplyr::pull() |> 
  flexdashboard::valueBox(
    caption="dias consecutivos sem mortes",
    icon= "fas fa-check-circle",
    color="success"
  )

```

### Informações

* Os dados referentes à mortalidade foram retirados do site [brasil.io](https://brasil.io/dataset/covid19/). Para mais informações sobre a manipulação deles, acesse o [repositório do dashboard no github](https://github.com/victordogo/covid19-sorocaba/tree/master/data-raw);
* Alguma dúvida? Envie um e-mail para victordogo@gmail.com ou acesse a aba ["Glossário"](#glossário);
* **Atualizado pela última vez em `r format(Sys.Date(), '%d/%m/%y')` às `r format(Sys.time(), '%R')` BRT.**


Vacinação
================================================================

Column {.tabset}
-------------------------------------

### Vacinação da Cidade de Sorocaba - Gráfico

```{r}
# Vacinação na cidade de sorocaba

cores <- c("População estimada (Masculino)" = "#ffc3a4",
           "1ª Dose (M)" = "#EE5A45",
           "2ª Dose ou Única (M)" = "#790000",
           "População estimada (Feminino)" = "#7bd1cb",
           "1ª Dose (F)" = "#1E8F89",
           "2ª Dose ou Única (F)" = "#00322f")

grafico_vacinacao <- vacina_scb |>
  ggplot2::ggplot(ggplot2::aes(x = grupo_idade, y=n_grafico))+
  ggplot2::geom_bar(data=vacina_scb[vacina_scb$sexo == "F",] |>
                      dplyr::distinct(populacao_grafico, .keep_all = TRUE),
                    ggplot2::aes(x = grupo_idade,
                                 y = populacao_grafico,
                                 fill = "População estimada (Feminino)"),
                    stat = "identity")+
  ggplot2::geom_bar(data=vacina_scb[vacina_scb$sexo == "M",] |>
                      dplyr::distinct(populacao_grafico, .keep_all = TRUE),
                    ggplot2::aes(x = grupo_idade,
                                 y = populacao_grafico,
                                 fill = "População estimada (Masculino)"),
                    stat = "identity")+
  ggplot2::geom_bar(data=vacina_scb[vacina_scb$sexo == "F",] |>
             dplyr::filter(dose_vacina == '1'),
             ggplot2::aes(fill = "1ª Dose (F)"),
             stat = "identity")+
  ggplot2::geom_bar(data=vacina_scb[vacina_scb$sexo == "M",] |>
                      dplyr::filter(dose_vacina == '1'),
                      ggplot2::aes(fill = "1ª Dose (M)"),
                      stat = "identity")+
  ggplot2::geom_bar(data=vacina_scb[vacina_scb$sexo == "F",] |>
                      dplyr::filter(dose_vacina == '2'),
                    ggplot2::aes(fill = "2ª Dose ou Única (F)"),
                    stat = "identity")+
  ggplot2::geom_bar(data=vacina_scb[vacina_scb$sexo == "M",] |>
                      dplyr::filter(dose_vacina == '2'),
                    ggplot2::aes(fill = "2ª Dose ou Única (M)"),
                    stat = "identity")+
  ggplot2::annotate("text",
            x="0-4 anos", y=5000,
            label = "Feminino",
            hjust = 0,
            fontface = "bold"
  )+
   ggplot2::annotate("text",
            x="0-4 anos", y=-5000,
            label = "Masculino",
            hjust = 1,
            fontface = "bold"
  )+
  ggplot2::labs(x="Faixa Etária",y="Vacinados",
                title="Vacinação na cidade de Sorocaba")+
  ggplot2::scale_y_continuous(
    breaks=c(-30000,-25000,-20000, -15000, -10000, -5000, 0,
             5000, 10000, 15000, 20000, 25000, 30000),
    labels = c(
      "-30000"="30.000",
      "-25000"="",
      "-20000"="20.000",
      "-15000"="",
      "-10000"="10.000",
      "-5000"="",
      "0"="0",
      "5000"="",
      "10000"="10.000",
      "15000"="",
      "20000"="20.000",
      "25000"="",
      "30000"="30.000"
    )
  )+
  ggplot2::scale_fill_manual(values = cores,
                             limits = c("População estimada (Masculino)",
                                        "1ª Dose (M)",
                                        "2ª Dose ou Única (M)",
                                        "2ª Dose ou Única (F)",
                                        "1ª Dose (F)",
                                        "População estimada (Feminino)"))+
  ggplot2::guides(fill=ggplot2::guide_legend(nrow=1,byrow=TRUE))+
  ggplot2::theme_minimal()+
  ggplot2::theme(
    plot.title = ggplot2::element_text(hjust = 0.5, size = 16),
    plot.subtitle = ggplot2::element_text(hjust = 0.5),
    axis.text = ggplot2::element_text(size = 12),
    axis.title = ggplot2::element_text(size = 12),
    plot.background = ggplot2::element_rect(fill = "white", color = "white")
  )+
  ggplot2::coord_flip()

grafico_vacinacao |> plotly::ggplotly()

```

### Tabela (População Feminina)

```{r}
# Apresentando porcentagems divididas por faixa etaria em tabela
# (pop. feminina)

# Tabela da primeira dose

primeira_dose_f <- vacina_scb |> 
  dplyr::filter(dose_vacina==1,
                sexo=="F") |>
  dplyr::mutate(`Porcentagem`=paste0(porc, "%"),
                `Grupo Etário`=grupo_idade) |>
  dplyr::arrange(grupo_idade) |> 
  dplyr::ungroup() |> 
  dplyr::select(`Grupo Etário`,`Porcentagem`) |> 
  gt::gt() |> 
  gt::as_raw_html()

# Tabela da segunda dose

segunda_dose_f <- vacina_scb |> 
  dplyr::filter(dose_vacina==2,
                sexo=="F") |>
  dplyr::mutate(`Porcentagem`=paste0(porc, "%"),
                `Grupo Etário`=grupo_idade) |>
  dplyr::arrange(grupo_idade) |> 
  dplyr::ungroup() |> 
  dplyr::select(`Grupo Etário`,`Porcentagem`) |> 
  gt::gt() |> 
  gt::as_raw_html()

# Apresentando as duas tabelas

data.frame(primeira_dose_f,segunda_dose_f) |> 
  gt::gt() |> 
  gt::fmt_markdown(columns=dplyr::everything()) |> 
  gt::cols_label(primeira_dose_f="% com 1ª dose aplicada",
                 segunda_dose_f="% com 2ª dose aplicada") |>
  gt::tab_footnote("Alguns valores são acima de 100% pois a pop. utilizada para cálculo se trata de uma estimativa",
                   locations = gt::cells_title()) |> 
  gt::tab_header(
    title=gt::md("**Vacinação da População Feminina de Sorocaba**"),
    subtitle=gt::md("Fonte: Ministério da Saúde 2020 e basedosdados.org")
  )

```

### Tabela (População Masculina)

```{r}
# Apresentando porcentagems divididas por faixa etaria em tabela
# (pop. masculina)

# Tabela da primeira dose

primeira_dose_m <- vacina_scb |> 
  dplyr::filter(dose_vacina==1,
                sexo=="M") |>
  dplyr::mutate(`Porcentagem`=paste0(porc, "%"),
                `Grupo Etário`=grupo_idade) |>
  dplyr::arrange(grupo_idade) |> 
  dplyr::ungroup() |> 
  dplyr::select(`Grupo Etário`,`Porcentagem`) |> 
  gt::gt() |> 
  gt::as_raw_html()

# Tabela da segunda dose

segunda_dose_m <- vacina_scb |> 
  dplyr::filter(dose_vacina==2,
                sexo=="M") |>
  dplyr::mutate(`Porcentagem`=paste0(porc, "%"),
                `Grupo Etário`=grupo_idade) |>
  dplyr::arrange(grupo_idade) |> 
  dplyr::ungroup() |> 
  dplyr::select(`Grupo Etário`,`Porcentagem`) |>
  gt::gt() |> 
  gt::as_raw_html()

# Apresentando as duas tabelas

data.frame(primeira_dose_m,segunda_dose_m) |> 
  gt::gt() |> 
  gt::fmt_markdown(columns=dplyr::everything()) |> 
  gt::cols_label(primeira_dose_m="% com 1ª dose aplicada",
                 segunda_dose_m="% com 2ª dose aplicada") |>
  gt::tab_footnote("Alguns valores são acima de 100% pois a pop. utilizada para cálculo se trata de uma estimativa",
                   locations = gt::cells_title()) |> 
  gt::tab_header(
    title=gt::md("**Vacinação da População Masculina de Sorocaba**"),
    subtitle=gt::md("Fonte: Ministério da Saúde 2020 e basedosdados.org")
  )

```

### Tabela (População Geral)

```{r}
# Apresentando porcentagems divididas por faixa etaria em tabela
# (pop. geral)

# Tabela da primeira dose

primeira_dose <- vacina_scb |> 
  dplyr::filter(dose_vacina==1) |>
  dplyr::group_by(grupo_idade) |>
  dplyr::summarise(populacao=sum(populacao),
                   n=sum(n),
                   porc=round(n/populacao * 100,digits=2)) |> 
  dplyr::mutate(`Porcentagem`=paste0(porc, "%"),
                `Grupo Etário`=grupo_idade) |>
  dplyr::arrange(grupo_idade) |> 
  dplyr::ungroup() |> 
  dplyr::select(`Grupo Etário`,`Porcentagem`) |> 
  gt::gt() |> 
  gt::as_raw_html()

# Tabela da segunda dose

segunda_dose <- vacina_scb |> 
  dplyr::filter(dose_vacina==2) |>
  dplyr::group_by(grupo_idade) |>
  dplyr::summarise(populacao=sum(populacao),
                   n=sum(n),
                   porc=round(n/populacao * 100,digits=2)) |> 
  dplyr::mutate(`Porcentagem`=paste0(porc, "%"),
                `Grupo Etário`=grupo_idade) |>
  dplyr::arrange(grupo_idade) |> 
  dplyr::ungroup() |> 
  dplyr::select(`Grupo Etário`,`Porcentagem`) |> 
  gt::gt() |> 
  gt::as_raw_html()

# Apresentando as duas tabelas

data.frame(primeira_dose,segunda_dose) |> 
  gt::gt() |> 
  gt::fmt_markdown(columns=dplyr::everything()) |> 
  gt::cols_label(primeira_dose="% com 1ª dose aplicada",
                 segunda_dose="% com 2ª dose aplicada") |>
  gt::tab_footnote("Alguns valores são acima de 100% pois a pop. utilizada para cálculo se trata de uma estimativa",
                   locations = gt::cells_title()) |> 
  gt::tab_header(
    title=gt::md("**Vacinação da População de Sorocaba**"),
    subtitle=gt::md("Fonte: Ministério da Saúde 2020 e basedosdados.org")
  )

```


Column {data-width=150}
-------------------------------------

###

```{r}
# Porcentagem da população com 1 dose

vacina_scb |>
  dplyr::group_by(dose_vacina) |> 
  dplyr::filter(dose_vacina==1) |> 
  dplyr::summarise(porc_tot=(sum(n)/sum(populacao))*100) |> 
  dplyr::select(porc_tot) |> 
  dplyr::pull() |> 
  round(2) |> 
  paste0("%") |>
  flexdashboard::valueBox(
    caption="da população com a 1ª dose",
    icon= "fas fa-syringe",
    color="success"
  )
  
```

###

```{r}
# Porcentagem da população com 2 dose

vacina_scb |>
  dplyr::group_by(dose_vacina) |> 
  dplyr::filter(dose_vacina==2) |> 
  dplyr::summarise(porc_tot=(sum(n)/sum(populacao))*100) |> 
  dplyr::select(porc_tot) |> 
  dplyr::pull() |> 
  round(2) |> 
  paste0("%") |>
  flexdashboard::valueBox(
    caption="da população com a 2ª dose",
    icon= "fas fa-syringe",
    color="success"
  )
  
```

###

```{r}
# Porcentagem de +15 anos com 1 dose

vacina_scb[-c(1:7),] |>
  dplyr::group_by(dose_vacina) |> 
  dplyr::filter(dose_vacina==1) |> 
  dplyr::summarise(porc_tot=(sum(n)/sum(populacao))*100) |> 
  dplyr::select(porc_tot) |> 
  dplyr::pull() |> 
  round(2) |> 
  paste0("%") |>
  flexdashboard::valueBox(
    caption="da população acima de 15 anos com a 1ª dose",
    icon= "fas fa-syringe",
    color="success"
  )
  
```

###

```{r}
# Porcentagem de +15 anos com 1 dose

vacina_scb[-c(1:7),] |>
  dplyr::group_by(dose_vacina) |> 
  dplyr::filter(dose_vacina==2) |> 
  dplyr::summarise(porc_tot=(sum(n)/sum(populacao))*100) |> 
  dplyr::select(porc_tot) |> 
  dplyr::pull() |> 
  round(2) |> 
  paste0("%") |>
  flexdashboard::valueBox(
    caption="da população acima de 15 anos com a 2ª dose",
    icon= "fas fa-syringe",
    color="success"
  )
  
```

### Informações

* Os dados referentes à vacinação foram retirados do site [basedosdados.org](https://basedosdados.org/dataset/br-ms-vacinacao-covid19). Para mais informações sobre a manipulação deles, acesse o [repositório do dashboard no github](https://github.com/victordogo/covid19-sorocaba/tree/master/data-raw);
* O gráfico de vacinação foi inspirado no trabalho de Bruno Mioto no [seguinte post;](https://medium.com/basedosdados/analisando-dados-de-vacina%C3%A7%C3%A3o-contra-covid-19-com-a-bd-49fe3db8c7f4)
* Alguma dúvida? Envie um e-mail para victordogo@gmail.com ou acesse a aba ["Glossário"](#glossário);
* **Atualizado pela última vez em `r format(Sys.Date(), '%d/%m/%y')` às `r format(Sys.time(), '%R')` BRT.**

Glossário
======================================================

Aqui estão presentes alguns termos e conceitos que podem não ser acessíveis para pessoas sem o hábito da leitura, criação e/ou interpretação de textos e relatórios estatísticos. Acha que faltam explicações? Envie um e-mail para victordogo@gmail.com sobre sua dúvida e, a depender do caso, ela será adicionada aqui!

* **Casos ou Mortes Diárias:** são o número de casos diagnosticados ou de mortes ocorridas **única e exclusivamente** num determinado dia;
* **Casos ou Mortes Acumuladas:** são o número de casos diagnosticados ou de mortes ocorridas **até** um determinado dia. Exemplificando, se no dia 1 temos 3 mortes diárias, no dia 2 temos 7 mortes diárias e no dia 3 temos 5 mortes diárias, o número de mortes acumuladas do dia 3 é $3+7+5 = 15$ mortes;
* **Estimativa Populacional:** temos no Brasil que os Censos Demográficos ocorrem (pelo menos em teoria) a cada 10 anos. No entanto, é de interesse de entidades governamentais terem uma ideia do tamanho da população no período entre censos também: para isso, instituições como o IBGE utilizam técnicas para **estimar** o tamanho da população. Não é o valor exato da população, mas uma aproximação satisfatória o bastante para que norteie políticas públicas e outras questões;
* **Médias Móveis:** são uma maneira de suavizar a curva de um determinado banco de dados para que possamos analisar a tendência dos valores observados sem que as variações atrapalhem a análise. São calculadas de acordo com uma ordem $k$ (em nosso caso, utilzamos $k$ = 7 e 14 dias): faz-se a média aritmética simples de valores no ponto $t$ e todos os $t-(k-1)$ pontos anteriores. Se a linha das médias móveis está em queda, então existem indícios de que a variável em questão (mortes ou casos diários) está em queda também;
* **Ocorrências a cada mil habitantes:** é um indicador bastante útil para termos ideia do quão boa ou ruim é a situação da cidade. Exemplificando, pensemos numa cidade que possui 10 mortes para cada mil habitantes: se dividirmos por dez, temos 1 morte para cada cem habitantes (ou 1% de mortes proporcionais à população); se dividirmos por cem, temos que, para cada dez pessoas, 0.1 morrem devido à doença (obviamente para fins de análise: não é possível que um décimo de pessoa morra!).


Sobre
======================================================

**Atualizado pela última vez em `r format(Sys.Date(), '%d/%m/%y')` às `r format(Sys.time(), '%R')` BRT.**

Este é o dashboard "A COVID-19 em Sorocaba". Ele é o resultado do Projeto de Extensão  "Análise e Visualização dos Dados da Pandemia na Cidade de Sorocaba", sob fomento da ProEx - Pró Reitoria de Extensão da UFSCar - Universidade Federal de São Carlos.

Ele é realizado por Victor Alves Dogo Martins (aluno do DEs - Departamento de Estatística da UFSCar - Campus São Carlos), sob orientação da Profa. Dra. Andreza Aparecida Palma (vinculada ao DEc - Departamento de Economia da UFSCar - Campus Sorocaba). 

O objetivo deste projeto é fornecer um dashboard conciso e de fácil compreensão com dados relativos à pandemia da COVID-19 na cidade de Sorocaba - SP. Estes dados, ao longo do tempo, consistem em casos confirmados, mortes confirmadas e em esforços da campanha de vacinação na cidade.

Todos os dados, gráficos e formatação do dashboard são construídos com auxílio da linguagem de programação estatística R:

* O dashboard é construído com o auxílio do pacote [`{flexdashboard}`](https://pkgs.rstudio.com/flexdashboard/);
* Os dados são tratados com auxílio dos pacotes do [tidyverse](https://www.tidyverse.org/);
* Os gráficos são produzidos, em suas versões estáticas, com auxílio do pacote [`{ggplot2}`](https://ggplot2.tidyverse.org/). Depois, são transformados em versões interativas com auxílio do pacote [`{plotly}`](https://plotly.com/r/);
* O site é publicado com auxílio do GitHub Pages, com automatização da leitura e tratamento diário das bases de dados através do GitHub Actions;
* As bases de dados são retiradas dos sites brasil.io (no caso de dados relativos a casos e mortes) e basedosdados.org (no caso de dados da vacinação). Os dados em si não são criados por eles, mas eles constituem uma **importante parte deste trabalho** devido ao fato de disponibilizarem diversas bases ora bagunçadas e difíceis de trabalhar em formatos muito mais amigáveis e que agilizam o processo de análise;
* **Próximos passos:** o intuito futuro deste site é ser atualizado automaticamente através de ferramentas de integração contínua (como o GitHub Actions).


Quaisquer dúvidas, críticas, elogios e sugestões podem ser encaminhadas por e-mail para victordogo@gmail.com .


Você pode visualizar o repositório deste site em [victordogo/covid19-sorocaba](https://github.com/victordogo/covid19-sorocaba) no GitHub.

**Referências:**